/*
Copyright 2010 Matt Van Der Westhuizen

This file is part of CGLL.

CGLL is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

CGLL is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with CGLL.  If not, see <http://www.gnu.org/licenses/>.
*/

package org.chaoticengine.cgll.serialization;

import org.newdawn.slick.Color;
import org.newdawn.slick.geom.Rectangle;
import org.simpleframework.xml.convert.Converter;
import org.simpleframework.xml.stream.InputNode;
import org.simpleframework.xml.stream.OutputNode;

/**
 * Simple XML converter for the Slick2D class Color.
 *
 * @author Matt v.d. Westhuizen
 */
public class ColorConverter implements Converter<Color> {
    public Color read(InputNode in) throws Exception {
        Color result = Color.white;
        String value = in.getValue();
        result = Color.decode(value);

        return(result);
    }

    public void write(OutputNode on, Color c) throws Exception {
        Long result = 0L;
        result = result | (c.getRed() << 16);
        result = result | (c.getGreen() << 8);
        result = result | (c.getBlue());

        on.setValue("#" + Long.toHexString(result));
    }
}
